﻿#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
//int main()
//{
//	int  a = 0;
//	if (!a == 1)//a原本是0 ，但是！是逻辑取反由假值变成真值1
//		printf("今天你笑了吗\n");
//	return 0;
//}
//int main()
//{
//	int a = 1;
//	int b = 4;
//	if (a && b >= 0)//a和b两边必须都大于零才成立
//		printf("你好\n");
//	return 0;
//}
//int main()
//{
//	int  a =0;
//	int b = 1;
//	if (a || b > 0)
//	{
//		printf("铠甲合体\n");
//	}
//	return  0;
//
//}
/*⼊⼀个年份year，判断year是否是闰年
闰年判断的规则：
1. 能被4整除并且不能被100整除是闰年
2. 能被400整除是闰年*/
//int main()
//{
//	int year = 0;
//	scanf("%d", &year);
//	if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
//	{
//		printf("是闰年\n");
//	}
//	else
//		printf("不是闰年\n");
//	return 0;
//}
//int main()
//{
//	int i = 0, a = 0, b = 2, c = 3, d = 4;
//	//i = a++ && ++b && d++;//这里的a++因为是后置++ 所以这里的a是0 0在表达式中为假，
//	//后面就短路了。把0就赋值给了i 。 输出结果就是   0 1  2 3 4 
//	i = a++||++b||d++;//因为这是逻辑或第一个为假，就会向后继续找真值，a++ （a++这里++ 后为1）
//	//为0就会算++b 为2 为真后面d++就不会计算 这里i就为真值1  结果就是  1  1  3 3 4 
//	printf(" i=%d \n a = %d\n b = %d\n c = %d \nd = %d\n",i, a, b, c, d);
//	return 0;
//}
//输⼊任意⼀个整数值，计算除3之后的余数
//int main()
//{
//	int num = 1;
//		scanf("%d", &num);
//		switch (num % 3)
//		{
//		case 0:
//			printf("余数是0\n");
//			break;
//		case 1:
//			printf("余数是1\n");
//			break;
//		case 2:
//			printf("余数是2\n");
//			break;
//		default:
//			printf("输入错误,请重新输入\n");
//
//		}	
//	return 0;
//}
//
//int main()
//{
//	int num = 1;
//		scanf("%d", &num);
//		switch (num % 3)
//		{
//		default:
//			printf("输入错误,请重新输入\n");
//
//		case 0:
//			printf("余数是0\n");
//			break;
//		case 1:
//			printf("余数是1\n");
//			break;
//
//		case 2:
//			printf("余数是2\n");
//			break;
//
//		
//		}	
//	return 0;
//}
//int main()
//{
//	char ch = 'c';
//	scanf("%c", &ch);
//	switch (ch)
//	{
//	case 'a':
//		printf("字符是a\n");
//		break;
//	case 'b ':
//
//		printf("字符是b\n");
//		break;
//	}
//
//	return 0;
//}
//int main()
//{
//	int day = 0;
//	scanf("%d", &day);
//	switch (day)
//	{
//	case 1:
//		printf("星期一\n");
//		break;
//	case 2:
//		printf("星期二\n");
//		break;
//	case 3:
//		printf("星期三\n");
//		break;
//	case 4:
//		printf("星期四\n");
//		break;
//	case 5:
//		printf("星期五\n");
//		break;
//	case 6:
//		printf("星期六\n");
//		break;
//	case 7:
//		printf("星期天\n");
//		break;
//
//	default:
//		printf("输入错误，请重新输入\n");
//		break;
//	}
//	return 0;
//	
//}
//int main()
//{
//	int day = 0;
//	scanf("%d", &day);
//	switch (day)
//	{
//	case 1:	//case也可以不加break ，如果不加break
//		//那么语句就会一直向下执行直到找到break或语句结束。
//	case 2:	
//	case 3:
//	case 4:		
//	case 5:
//		printf("工作日\n");
//		break;
//	case 6:
//	case 7:
//		printf("休息日\n");
//		break;
//	default:
//		printf("输入错误，请重新输入\n");
//		break;
//	}
//	return 0;
//}
//int  main()
//{
//	int a = 10;
//	while (a)
//	{
//		printf("杀\n");
//	}
//
//	return 0;
//}
//int  main()
//{
//	int a = 10;
//	while (a)
//	{
//		printf("杀\n");
//		a--;
//	}
//
//	return 0;
//}

//练习：在屏幕上打印 1~10 的值
//int main()
//{
//	int a = 1;
//	while (a<=10)// 条件  如果a大于 10 了，那么条件为假 ，语句就会结束。
//	{
//		printf("%d ", a);//打印a 1 2  3 ....
//		a++;//a打印完每次都加一 就会回到条件
//	}
//	return 0;
//}
//输⼊⼀个正的整数，逆序打印这个整数的每⼀位
//例如：
//输⼊：1234，输出：4 3 2 1
//输⼊：521，输出：1 2 5
//int main()
//{
//	int num = 0;
//	scanf("%d", &num);
//	while (num)
//	{
//		printf("%d ", num % 10);
//		num = num / 10;
//	}
//
//	return 0;
//}
//int main()
//{
//	int i = 0;
//	for (i = 0 ; i < 10; i++)
//	{
//		printf("%d ", i);
//	}
//	return 0;
//}

//int main()
//{
//	int i = 0;
//	for (i = 1; i< 100; i++)
//	{
//		printf("%d ", i);
//	}
//	return 0;
//}
//计算1~100之间3的倍数的数字之和
//int main()
//{
//	int i = 0;
//	int count = 0;
//	for (i = 0; i < 100; i++)//打印从1-100数字范围
//	{
//		if (i % 3 == 0) //如果i % 3==0 那么i就能整除3
//		{
//			count += i;	//把能整除3的数都加在一起。	
//			printf("%d ", i);//可以打印出被3整除的数
//		}		
//	}
//	printf("\n");
//	printf("%d ", count);//打印被3整除的数的和
//	return 0;
// }
//int main()
//{
//	int i = 0;
//	int count = 0;
//	for (i = 0; i < 100; i+=3)//这里的i++ 可以简化为i+=3 就是i=i+3。那么if就可省略不写。
//	{
//		count += i;
//
//	}
//	printf("%d ", count);
//	return 0;
//}
//在屏幕上打印1~10的值
//int main()
//{
//	int i = 1;//初始化
//	do
//	{		
//		printf("%d ", i);
//			i++; //调整
//	} while (i <=10);//条件判断
//
//	return 0;
//}
//int main()
//{
//	int i = 1;//初始化
//	do	
//		printf("%d ", i);		
//	 while (i <= 10);//条件判断
//
//	return 0;
//}
//输⼊⼀个正整数，计算这个整数是⼏位数？
//输⼊：1234 输出：4
//输⼊：12 输出：2
//int  main()
//{
//	int  i = 0;
//	int count = 0;
//	scanf("%d", &i);
//	do
//	{
//		int ret = i % 10;//余数为1位
//		i = i / 10;//为的是去掉1位
//		count++;//执行了几次就代表有几位数
//	} while (i);
//	printf("%d ", count);
//	return 0;
//}

//int main()
//{
//	int i = 1;	
//	for (i = 1; i < 10; i++)
//	{
//		if (i == 5)//当i等于5时break会跳出循环  结果就是 1 2 3 4 
//			break;
//		printf("%d ", i);
//	}
//}
//int main()
//{
//	int i = 1;
//	for (i = 1; i < 10; i++)
//	{
//		if (i == 5)
//			continue;//这里的continue会跳过后面语句也就是5不会打印出来，
//		//回到i++变成6程序继续直到结束。
//		printf("%d ", i);
//	
//	}
//}
//int main()
//{
//	int i = 0;
//	while (i < 10)
//	{
//		if (i == 5)
//			continue;//在这里continue会跳过后面的语句，i++一直无法被执行就无法将5变成6跳出循
//		printf("%d ", i);
//		i++;
//	}
//	return 0;
////}
//int main()
//{
//	int i = 0;
//	while (i < 10)
//	{
//		if (i == 5)
//			break;//当i=5 的时候break执行 循环结束。
//		printf("%d ", i);
//		i++;
//	}
//	return 0;
//}
// //求10 个整数中最大值

//int main()
//{
//	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
//	int Max = arr[0];
//	int i = 0;
//	for (i = 0; i < 10; i++)
//	{
//		if (Max < arr[i])
//		{
//			Max = arr[i];
//		}
//	}	
//	printf("%d ",Max);
//	return 0;
//}
//计算1 / 1 - 1 / 2 + 1 / 3 - 1 / 4 + 1 / 5 …… + 1/99 - 1/100 的值
//int main()
//{
//	int i, j;
//	double  sum = 0;// 用来计算的
//	double sum1 = 0;//用来存放1/1+1/3+ 1/5.....
//	double sum2 = 0;//用来存1/2+1/4+1/6......
//	for (i = 1; i <= 100; i+=2)
//	{
//		sum1 = sum1 + 1.0 / i;//1.0 不会变 由i在控制数的大小 
//	}
//	for (j = 2; j <= 100; j += 2)
//	{
//		sum2 = sum2 + 1.0 /j;//和上述一样
//	}
//	sum = sum1 - sum2; 
//	printf("%f ", sum);
//	return 0;
//}
 //编写程序数一下 1到 100 的所有整数中出现多少个数字9
//int main()
//{
//	int count = 0;
//	int i = 1;
//	for (i = 1; i <= 100; i++)
//	{ 
//		if (i % 10 == 9 || i / 10 == 9)
//		{
//			count++;
//			printf("%d ", i);
//		}
//	}
//	printf("%d ", count);
//	return 0;
//}
//打印1000年到2000年之间的闰年
//int main()
//{
//	int year = 0;
//	int count = 0;
//	
//	for (year = 1000; year <= 2000; year++)
//	{
//		if ((year % 4 == 0) && (year % 100 != 0) || year % 400 == 0)
//		{
//			printf("%d ",year);
//			count++;
//		}
//	}
//	printf("\n ");
//
//	printf("%d\n ", count);
//	return 0;
//}
//最大公约数
int main()
{
	int a = 0;
	int b = 0;
	scanf("%d %d", &a, &b);
	int k = 0;
	while (k = a % b)
	{
		a = b;
		b = k;
	}
	printf("最大公约数是%d", b);
	return 0;
}